const app = getApp()
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
    /**
     * 页面的初始数据
     */
    data: {
        // 头像临时地址
        avatarUrl: defaultAvatarUrl,
        // 头像在云存储中的永久地址
        avatarFileId: ''
    },

    // 用户选择头像后的回调
    onChooseAvatar(e) {
        this.setData({
            avatarUrl: e.detail.avatarUrl
        })

        // 注意：图片只支持<1M图片，超过1M会失败
        // 注意：avatarUrl获取到的是临时地址！
        // 若想永久使用这个头像地址，可上传到云存储中得到永久地址
        this._uploadFile()
    },

    // 上传头像至云存储
    _uploadFile() {
        // 文件扩展名
        const suffix = /\.\w+$/.exec(this.data.avatarUrl)[0]
        wx.cloud.uploadFile({
            cloudPath: 'avatar/' + Date.now() + '-' + Math.random() * 1000000 + suffix,
            filePath: this.data.avatarUrl,
            success: res => {
                this.data.avatarFileId = res.fileID
            },
            fail: err => console.error(err)
        })
    },

    // 提交表单
    formSubmit(e) {
        wx.setStorage({
            key: `${app.globalData.openid}-userinfo`,
            data: {
                nickname: e.detail.value.nickname,
                avatarFileId: this.data.avatarFileId || defaultAvatarUrl
            },
            success() {
                wx.showToast({
                    icon: 'success',
                    title: '保存成功'
                })
                setTimeout(wx.navigateBack, 1500)
            },
            fail() {
                wx.showToast({
                    icon: 'error',
                    title: '保存失败'
                })
            }
        })
    }
})